﻿
Public Class [case]
    'hardware type, such as keyboard
    Public ReadOnly category As UInt32 = 0
    'keydown, keyup, etc, for keyboard
    Public ReadOnly action As UInt32 = 0
    'keycode for keyboard
    Public ReadOnly mask As UInt32 = 0
    'extra information, which cannot be handled by an int
    Public ReadOnly meta As bytes = Nothing

    Public Sub New(ByVal category As UInt32,
                   ByVal action As UInt32,
                   Optional ByVal mask As UInt32 = 0,
                   Optional ByVal meta As bytes = Nothing)
        copy(Me.category, category)
        copy(Me.action, action)
        copy(Me.mask, mask)
        copy(Me.meta, meta)
    End Sub
End Class
